1. Field of the Invention
The present invention relates to a contact destination information registration method, a network system, a node, and a contact destination information registration program. In particular, the present invention relates to a contact destination information registration method and so on in which when a node registers contact destination information corresponding to a predetermined node address in a distributed hash table, the node performs a first request operation of acquiring a registration time of a value registered in the distributed hash table so as to be associated with a key that is a hash value of the predetermined node address, and thereafter performs a second request operation of, if a registration time of a value registered in the distributed hash table so as to be associated with that key coincides with the registration time acquired in the first request operation, registering the contact destination information in the distributed hash table so as to be associated with that key, in order to enable registration of a plurality of pieces of contact destination information for a single node address.
2. Description of the Related Art
As a communication control protocol, Session Initiation Protocol (SIP) described in Japanese Patent Laid-Open No. 2005-184450 and so on is known, for example. SIP is an application-layer signaling protocol for initiating, modifying, and terminating a multimedia session on an initiation protocol (IP) network. SIP is standardized in RFC3261.
An IP telephone and a communication terminal for a video conference system or the like that employ SIP demand introduction of an SIP proxy server, a registrar server, and so on (which will be hereinafter referred to as an “SIP server”) to perform name resolution for an SIP Uniform Resource Identifier (URI).
FIG. 10 illustrates a basic configuration 200 of a communication system that employs SIP. In this basic configuration 200, a terminal (calling party) 201, a terminal (called party) 202, and an SIP server 203 are connected to one another via an IP network 204.
FIG. 11 illustrates an example of signaling that employs SIP. (1) In order to establish a session, the terminal (calling party) 201 sends an INVITE message to a proxy server 203a with the terminal (called party) 202 as a destination. (2) The proxy server 203a sends an SIP URI included in the INVITE message to a location server 205 to inquire of the location server 205 an IP address of the destination terminal (called party) 202.
(3) The location server 205 looks up the IP address associated with the SIP URI sent from the proxy server 203a, and sends the IP address of the terminal (called party) 202 to the proxy server 203a. (4) The proxy server 203a uses the IP address of the terminal (called party) 202 sent from the location server 205 to forward the INVITE message sent from the terminal (calling party) 201 to the terminal (called party) 202.
(5) The terminal (called party) 202 receives the INVITE message from the terminal (calling party) 201, and performs a ringing process such as ringing a telephone bell. (6) Then, upon off-hook of a telephone receiver or the like, the terminal (called party) 202 sends a success response (200 OK) to the proxy server 203a, and (7) the proxy server 203a forwards the success response to the terminal (calling party) 201.
(8) The terminal (calling party) 201 receives the success response from the terminal (called party) 202, and sends an ACK response (acceptance of session establishment) to the proxy server 203a. (9) The proxy server 203a forwards the ACK response to the terminal (called party) 202. As a result, a session is created between the terminal (calling party) 201 and the terminal (called party) 202, and audio data is exchanged therebetween on the created session, i.e., communication is established.
In a small- or medium-scale communication system with a small or moderate number of participating terminals, there is a desire for a communication environment to be realized more easily without the need for the introduction of the SIP server. One conceivable method to realize the above is to apply an overlay network. The overlay network is a technique of forming a virtual network on top of a network layer, such as the IP network, on the assumption that connection on the network layer is ensured. There are various methods for realizing the overlay network, one of which is a method of using a technology of a distributed hash table such as Chord.
As described in Japanese Patent Laid-Open No. 2005-234762, for example, the distributed hash table is a technology of allowing a collection of storage units in a plurality of nodes (i.e., terminals) to function as a single enormous hash table. In the overlay network that employs the distributed hash table, a collection of nodes that form this enormous hash table form the overlay network. Data to be stored in the hash table is stored in a node (a hash table) on the overlay network based on a key (a hash value) calculated from the data itself, a name assigned to the data, or the like using a hash function. It depends on an adopted algorithm which node actually stores the data. When there is a desire to access a value, the value is acquired, based on the key, from the node that stores the value.
In Chord[2], for example, a single ring is first formed by the nodes that participate in the overlay network, and data held by each of the nodes is stored in a node in the single ring based on a key calculated using a hash function such as SHA-1. Access to the nodes or resources is achieved efficiently by taking proper advantage of how the nodes are ordered in the ring.
In the overlay network employing the distributed hash table, information or data of the nodes participating in the overlay network is generally distributed among and stored in the storage units of the nodes. Therefore, the storage units of the nodes can be considered as being shared by all the nodes participating in the overlay network as they can be accessed by each of the nodes. Proper use of this distributed shared storage enables the name resolution for the SIP URL as performed by the SIP server, for example, to be achieved without the use of the SIP server.
FIG. 12 illustrates an example of signaling that employs the distributed hash table. (1) A terminal (calling party) 301 looks up, in a distributed hash table (i.e., the overlay network) 303, a value (i.e., an IP address of a terminal (called party) 302) associated with a key that is a hash value for the terminal (called party) 302, and (2) the terminal (calling party) 301 acquires the value associated with the key from the distributed hash table 303.
(3) The terminal (calling party) 301 sends an INVITE message to the terminal (called party) 302 using the value (i.e., the IP address of the terminal (called party) 302) associated with the key, which has been acquired from the distributed hash table 303. (4) The terminal (called party) 302 receives the INVITE message from the terminal (calling party) 301, and performs a ringing process such as ringing a telephone bell. (5) Then, upon off-hook of a telephone receiver or the like, the terminal (called party) 302 sends a success response (200 OK) to the terminal (calling party) 301.
(6) The terminal (calling party) 301 receives the success response from the terminal (called party) 302, and sends an ACK response (acceptance of session establishment) to the terminal (called party) 302. As a result, a session is created between the terminal (calling party) 301 and the terminal (called party) 302, and audio data is exchanged therebetween on the created session, i.e., communication is established.